!function() {
    "use strict";
    function t() {
        return "cf-marker-" + Math.random().toString().slice(2)
    }
    function e() {
        for (var t = [], e = 0; e < arguments.length; e++)
            t[e] = arguments[e];
        (n = console.warn || console.log).call.apply(n, [console, "[ROCKET LOADER] "].concat(t));
        var n
    }
    function n(t, e) {
        var n = e.parentNode;
        n && h(t, n, e)
    }
    function r(t, e) {
        h(t, e, e.childNodes[0])
    }
    function o(t) {
        var e = t.parentNode;
        e && e.removeChild(t)
    }
    function i(t) {
        var e = t.namespaceURI === E ? "xlink:href" : "src";
        return t.getAttribute(e)
    }
    function a(t, e) {
        var n = t.type.substr(e.length);
        return !(n && !A[n.trim()]) && ((!k || !t.hasAttribute("nomodule")) && !(!k && "module" === n))
    }
    function c(t) {
        return a(t, "")
    }
    function s(t, e) {
        return function(n) {
            if (e(),
            t)
                return t.call(this, n)
        }
    }
    function u(t, e) {
        t.onload = s(t.onload, e),
        t.onerror = s(t.onerror, e)
    }
    function p(t) {
        var e = document.createElementNS(t.namespaceURI, "script");
        e.async = t.hasAttribute("async"),
        e.textContent = t.textContent;
        for (var n = 0; n < t.attributes.length; n++) {
            var r = t.attributes[n];
            try {
                r.namespaceURI ? e.setAttributeNS(r.namespaceURI, r.name, r.value) : e.setAttribute(r.name, r.value)
            } catch (o) {}
        }
        return e
    }
    function l(t, e) {
        var n = new I(e);
        t.dispatchEvent(n)
    }
    function d(e) {
        var n = e.namespaceURI === E
          , r = t();
        e.setAttribute(r, "");
        var i = n ? "<svg>" + e.outerHTML + "</svg>" : e.outerHTML;
        L.call(document, i);
        var a = document.querySelector("[" + r + "]");
        if (a) {
            a.removeAttribute(r);
            var c = n && a.parentNode;
            c && o(c)
        }
        return a
    }
    function f(t) {
        if (t && "handleEvent"in t) {
            var e = t.handleEvent;
            return "function" == typeof e ? e.bind(t) : e
        }
        return t
    }
    function h(t, e, n) {
        var r = n ? function(t) {
            return e.insertBefore(t, n)
        }
        : function(t) {
            return e.appendChild(t)
        }
        ;
        Array.prototype.slice.call(t).forEach(r)
    }
    function v() {
        return /chrome/i.test(navigator.userAgent) && /google/i.test(navigator.vendor)
    }
    function y(t, e) {
        function n() {
            this.constructor = t
        }
        H(t, e),
        t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype,
        new n)
    }
    function m(t) {
        return t instanceof Window ? ["load"] : t instanceof Document ? ["DOMContentLoaded", "readystatechange"] : []
    }
    function b(t) {
        var e = t.getAttribute(R);
        if (!e)
            return null;
        var n = e.split(T);
        return {
            nonce: n[0],
            handlerPrefixLength: +n[1],
            bailout: !t.hasAttribute("defer")
        }
    }
    function g(t) {
        var e = B + t.nonce;
        Array.prototype.forEach.call(document.querySelectorAll("[" + e + "]"), function(n) {
            n.removeAttribute(e),
            Array.prototype.forEach.call(n.attributes, function(e) {
                /^on/.test(e.name) && "function" != typeof n[e.name] && n.setAttribute(e.name, e.value.substring(t.handlerPrefixLength))
            })
        })
    }
    function S() {
        var t = window;
        "undefined" != typeof Promise && (t.__cfQR = {
            done: new Promise(function(t) {
                return U = t
            }
            )
        })
    }
    function w(t) {
        var e = new N(t)
          , n = new C(e);
        e.harvestScriptsInDocument(),
        new W(e,{
            nonce: t,
            blocking: !0,
            docWriteSimulator: n,
            callback: function() {}
        }).run()
    }
    function x(t) {
        var e = new N(t)
          , n = new C(e);
        e.harvestScriptsInDocument();
        var r = new W(e,{
            nonce: t,
            blocking: !1,
            docWriteSimulator: n,
            callback: function() {
                window.__cfRLUnblockHandlers = !0,
                r.removePreloadHints(),
                P(t)
            }
        });
        r.insertPreloadHints(),
        M.runOnLoad(function() {
            r.run()
        })
    }
    function P(t) {
        var e = new O(t);
        M.simulateStateBeforeDeferScriptsActivation(),
        e.harvestDeferScriptsInDocument(),
        new W(e,{
            nonce: t,
            blocking: !1,
            callback: function() {
                M.simulateStateAfterDeferScriptsActivation(),
                U && U()
            }
        }).run()
    }
    var E = "http://www.w3.org/2000/svg"
      , A = {
        "application/ecmascript": !0,
        "application/javascript": !0,
        "application/x-ecmascript": !0,
        "application/x-javascript": !0,
        "text/ecmascript": !0,
        "text/javascript": !0,
        "text/javascript1.0": !0,
        "text/javascript1.1": !0,
        "text/javascript1.2": !0,
        "text/javascript1.3": !0,
        "text/javascript1.4": !0,
        "text/javascript1.5": !0,
        "text/jscript": !0,
        "text/livescript": !0,
        "text/x-ecmascript": !0,
        "text/x-javascript": !0,
        module: !0
    }
      , k = void 0 !== document.createElement("script").noModule
      , I = function() {
        var t = window;
        return t.__rocketLoaderEventCtor || Object.defineProperty(t, "__rocketLoaderEventCtor", {
            value: Event
        }),
        t.__rocketLoaderEventCtor
    }()
      , L = document.write
      , _ = document.writeln
      , H = Object.setPrototypeOf || {
        __proto__: []
    }instanceof Array && function(t, e) {
        t.__proto__ = e
    }
    || function(t, e) {
        for (var n in e)
            e.hasOwnProperty(n) && (t[n] = e[n])
    }
      , D = function() {
        function t(t) {
            this.nonce = t,
            this.items = []
        }
        return Object.defineProperty(t.prototype, "hasItems", {
            get: function() {
                return this.items.length > 0
            },
            enumerable: !0,
            configurable: !0
        }),
        t.prototype.pop = function() {
            return this.items.pop()
        }
        ,
        t.prototype.forEach = function(t) {
            this.items.forEach(function(e) {
                var n = e.script;
                return t(n)
            })
        }
        ,
        t.prototype.harvestScripts = function(t, e) {
            var n = this
              , r = e.filter
              , o = e.mutate;
            Array.prototype.slice.call(t.querySelectorAll("script")).filter(r).reverse().forEach(function(t) {
                o(t),
                n.pushScriptOnStack(t)
            })
        }
        ,
        t.prototype.pushScriptOnStack = function(t) {
            var e = t.parentNode
              , n = this.createPlaceholder(t)
              , r = !!i(t);
            e.replaceChild(n, t),
            this.items.push({
                script: t,
                placeholder: n,
                external: r,
                async: r && t.hasAttribute("async"),
                executable: c(t)
            })
        }
        ,
        t.prototype.hasNonce = function(t) {
            return 0 === t.type.indexOf(this.nonce)
        }
        ,
        t.prototype.removeNonce = function(t) {
            t.type = t.type.substr(this.nonce.length)
        }
        ,
        t.prototype.makeNonExecutable = function(t) {
            t.type = this.nonce + t.type
        }
        ,
        t.prototype.isPendingDeferScript = function(t) {
            return t.hasAttribute("defer") || t.type === this.nonce + "module" && !t.hasAttribute("async")
        }
        ,
        t
    }()
      , N = function(t) {
        function e() {
            return null !== t && t.apply(this, arguments) || this
        }
        return y(e, t),
        e.prototype.harvestScriptsInDocument = function() {
            var t = this;
            this.harvestScripts(document, {
                filter: function(e) {
                    return t.hasNonce(e)
                },
                mutate: function(e) {
                    t.isPendingDeferScript(e) || t.removeNonce(e)
                }
            })
        }
        ,
        e.prototype.harvestScriptsAfterDocWrite = function(t) {
            var e = this;
            this.harvestScripts(t, {
                filter: c,
                mutate: function(t) {
                    e.isPendingDeferScript(t) && e.makeNonExecutable(t)
                }
            })
        }
        ,
        e.prototype.createPlaceholder = function(t) {
            return document.createComment(t.outerHTML)
        }
        ,
        e
    }(D)
      , O = function(t) {
        function e() {
            return null !== t && t.apply(this, arguments) || this
        }
        return y(e, t),
        e.prototype.harvestDeferScriptsInDocument = function() {
            var t = this;
            this.harvestScripts(document, {
                filter: function(e) {
                    return t.hasNonce(e) && t.isPendingDeferScript(e)
                },
                mutate: function(e) {
                    return t.removeNonce(e)
                }
            })
        }
        ,
        e.prototype.createPlaceholder = function(t) {
            var e = p(t);
            return this.makeNonExecutable(e),
            e
        }
        ,
        e
    }(D)
      , C = function() {
        function t(t) {
            this.scriptStack = t
        }
        return t.prototype.enable = function(t) {
            var e = this;
            this.insertionPointMarker = t,
            this.buffer = "",
            document.write = function() {
                for (var t = [], n = 0; n < arguments.length; n++)
                    t[n] = arguments[n];
                return e.write(t, !1)
            }
            ,
            document.writeln = function() {
                for (var t = [], n = 0; n < arguments.length; n++)
                    t[n] = arguments[n];
                return e.write(t, !0)
            }
        }
        ,
        t.prototype.flushWrittenContentAndDisable = function() {
            document.write = L,
            document.writeln = _,
            this.buffer.length && (document.contains(this.insertionPointMarker) ? this.insertionPointMarker.parentNode === document.head ? this.insertContentInHead() : this.insertContentInBody() : e("Insertion point marker for document.write was detached from document:", "Markup will not be inserted"))
        }
        ,
        t.prototype.insertContentInHead = function() {
            var t = new DOMParser
              , e = "<!DOCTYPE html><head>" + this.buffer + "</head>"
              , o = t.parseFromString(e, "text/html");
            if (this.scriptStack.harvestScriptsAfterDocWrite(o),
            n(o.head.childNodes, this.insertionPointMarker),
            o.body.childNodes.length) {
                for (var i = Array.prototype.slice.call(o.body.childNodes), a = this.insertionPointMarker.nextSibling; a; )
                    i.push(a),
                    a = a.nextSibling;
                document.body || L.call(document, "<body>"),
                r(i, document.body)
            }
        }
        ,
        t.prototype.insertContentInBody = function() {
            var t = this.insertionPointMarker.parentElement
              , e = document.createElement(t.tagName);
            e.innerHTML = this.buffer,
            this.scriptStack.harvestScriptsAfterDocWrite(e),
            n(e.childNodes, this.insertionPointMarker)
        }
        ,
        t.prototype.write = function(t, e) {
            var n = document.currentScript;
            n && i(n) && n.hasAttribute("async") ? (r = e ? _ : L).call.apply(r, [document].concat(t)) : this.buffer += t.map(String).join(e ? "\n" : "");
            var r
        }
        ,
        t
    }()
      , j = function() {
        function t() {
            var t = this;
            this.simulatedReadyState = "loading",
            this.bypassEventsInProxies = !1,
            this.nativeWindowAddEventListener = window.addEventListener;
            try {
                Object.defineProperty(document, "readyState", {
                    get: function() {
                        return t.simulatedReadyState
                    }
                })
            } catch (e) {}
            this.setupEventListenerProxy(),
            this.updateInlineHandlers()
        }
        return t.prototype.runOnLoad = function(t) {
            var e = this;
            this.nativeWindowAddEventListener.call(window, "load", function(n) {
                if (!e.bypassEventsInProxies)
                    return t(n)
            })
        }
        ,
        t.prototype.updateInlineHandlers = function() {
            this.proxyInlineHandler(document, "onreadystatechange"),
            this.proxyInlineHandler(window, "onload"),
            document.body && this.proxyInlineHandler(document.body, "onload")
        }
        ,
        t.prototype.simulateStateBeforeDeferScriptsActivation = function() {
            this.bypassEventsInProxies = !0,
            this.simulatedReadyState = "interactive",
            l(document, "readystatechange"),
            this.bypassEventsInProxies = !1
        }
        ,
        t.prototype.simulateStateAfterDeferScriptsActivation = function() {
            var t = this;
            this.bypassEventsInProxies = !0,
            l(document, "DOMContentLoaded"),
            this.simulatedReadyState = "complete",
            l(document, "readystatechange"),
            l(window, "load"),
            this.bypassEventsInProxies = !1,
            window.setTimeout(function() {
                return t.bypassEventsInProxies = !0
            }, 0)
        }
        ,
        t.prototype.setupEventListenerProxy = function() {
            var t = this;
            ("undefined" != typeof EventTarget ? [EventTarget.prototype] : [Node.prototype, Window.prototype]).forEach(function(e) {
                return t.patchEventTargetMethods(e)
            })
        }
        ,
        t.prototype.patchEventTargetMethods = function(t) {
            var e = this
              , n = t.addEventListener
              , r = t.removeEventListener;
            t.addEventListener = function(t, r) {
                for (var o = [], i = 2; i < arguments.length; i++)
                    o[i - 2] = arguments[i];
                var a = m(this)
                  , c = r && r.__rocketLoaderProxiedHandler;
                if (!c) {
                    var s = f(r);
                    "function" == typeof s ? (c = function(n) {
                        if (e.bypassEventsInProxies || a.indexOf(t) < 0)
                            return s.call(this, n)
                    }
                    ,
                    Object.defineProperty(r, "__rocketLoaderProxiedHandler", {
                        value: c
                    })) : c = r
                }
                n.call.apply(n, [this, t, c].concat(o))
            }
            ,
            t.removeEventListener = function(t, e) {
                for (var n = [], o = 2; o < arguments.length; o++)
                    n[o - 2] = arguments[o];
                var i = e && e.__rocketLoaderProxiedHandler || e;
                r.call.apply(r, [this, t, i].concat(n))
            }
        }
        ,
        t.prototype.proxyInlineHandler = function(t, e) {
            try {
                var n = t[e];
                if (n && !n.__rocketLoaderInlineHandlerProxy) {
                    var r = this;
                    t[e] = function(t) {
                        if (r.bypassEventsInProxies)
                            return n.call(this, t)
                    }
                    ,
                    Object.defineProperty(t[e], "__rocketLoaderInlineHandlerProxy", {
                        value: !0
                    })
                }
            } catch (o) {
                return void console.warn("encountered an error when accessing " + e + " handler:", o.message)
            }
        }
        ,
        t
    }()
      , M = function() {
        var t = window;
        return t.__rocketLoaderLoadProgressSimulator || Object.defineProperty(t, "__rocketLoaderLoadProgressSimulator", {
            value: new j
        }),
        t.__rocketLoaderLoadProgressSimulator
    }()
      , W = function() {
        function t(t, e) {
            this.scriptStack = t,
            this.settings = e,
            this.preloadHints = []
        }
        return t.prototype.insertPreloadHints = function() {
            var t = this;
            this.scriptStack.forEach(function(e) {
                if (a(e, t.settings.nonce)) {
                    var n = i(e)
                      , r = v() && e.hasAttribute("integrity");
                    if (n && !r) {
                        var o = document.createElement("link");
                        o.setAttribute("rel", "preload"),
                        o.setAttribute("as", "script"),
                        o.setAttribute("href", n),
                        e.crossOrigin && o.setAttribute("crossorigin", e.crossOrigin),
                        document.head.appendChild(o),
                        t.preloadHints.push(o)
                    }
                }
            })
        }
        ,
        t.prototype.removePreloadHints = function() {
            this.preloadHints.forEach(function(t) {
                return o(t)
            })
        }
        ,
        t.prototype.run = function() {
            for (var t = this, e = this; this.scriptStack.hasItems; ) {
                var n = function() {
                    var n = e.settings.docWriteSimulator
                      , r = e.scriptStack.pop();
                    n && !r.async && n.enable(r.placeholder);
                    var o = e.activateScript(r);
                    return o ? r.external && r.executable && !r.async ? (u(o, function() {
                        t.finalizeActivation(r),
                        t.run()
                    }),
                    {
                        value: void 0
                    }) : void e.finalizeActivation(r) : (n && n.flushWrittenContentAndDisable(),
                    "continue")
                }();
                if ("object" == typeof n)
                    return n.value
            }
            this.scriptStack.hasItems || this.settings.callback()
        }
        ,
        t.prototype.finalizeActivation = function(t) {
            this.settings.docWriteSimulator && !t.async && this.settings.docWriteSimulator.flushWrittenContentAndDisable(),
            M.updateInlineHandlers(),
            o(t.placeholder)
        }
        ,
        t.prototype.activateScript = function(t) {
            var n = t.script
              , r = t.placeholder
              , o = t.external
              , i = t.async
              , a = r.parentNode;
            if (!document.contains(r))
                return e("Placeholder for script \n" + n.outerHTML + "\n was detached from document.", "Script will not be executed."),
                null;
            var c = this.settings.blocking && o && !i ? d(n) : p(n);
            return c ? (a.insertBefore(c, r),
            c) : (e("Failed to create activatable copy of script \n" + n.outerHTML + "\n", "Script will not be executed."),
            null)
        }
        ,
        t
    }()
      , R = "data-cf-settings"
      , T = "|"
      , B = "data-cf-modified-"
      , U = void 0;
    !function() {
        var t = document.currentScript;
        if (t) {
            var n = b(t);
            n ? (o(t),
            g(n),
            M.updateInlineHandlers(),
            n.bailout ? w(n.nonce) : (S(),
            x(n.nonce))) : e("Activator script doesn't have settings. No scripts will be executed.")
        } else
            e("Can't obtain activator script. No scripts will be executed.")
    }()
}();
